home *** CD-ROM | disk | FTP | other *** search
- /*
- readconvtab.c
- Example that shows the way ACT-files are read by TextConv
- Last change: 27.09.1997
-
- Attention: this file is only a code fragment to use as example or model
- This file cant be direct compiled!
- */
-
-
- /*
- Return values:
-
- 0 - OK
- 1 - Error on opening the file
- 2 - file is not an ACT-file
- 3 - Wrong ACT verion
- 4 - Wrong table identification
- 5 - undefined errors
- */
-
- FILE *tabfile; /* poiter to the table file */
- UBYTE header[20]; /* buffer for header */
- UBYTE error; /* return value for errors */
- int i; /* counter */
-
-
- /* Example: ANSI2IBM */
-
- error=0;
-
- if(!(tabfile=fopen("PROGDIR:convtables/ansi2ibm.act","rb"))) /* open file */
- {
- return(1);
- }
-
- fread(header, sizeof(UBYTE), 20, tabfile); /* red header */
-
-
- /* MagicBytes test */
-
- if((header[0]=='S')&&(header[1]=='C')&&(header[2]=='T')&&(header[3]=='A')&&(header[4]=='C')&&(header[5]=='T'))
- {
- /* MagicByte test successful */
- }
- else
- {
- /* MagicByte failed - return error and quit */
- return(2);
- }
-
-
- /* Version test */
-
- if((header[6]==1)&&(header[7]==0))
- {
- /* Version test (Version 1.0) successful */
- }
- else
- {
- /* Version test failed - set error for return, not quit */
- error=3;
- }
-
-
- /* table identification test */
-
- if((header[8]==' ')&&(header[9]=='A')&&(header[10]=='N')&&(header[11]=='S')&&
- (header[12]=='I')&&(header[13]=='2')&&(header[14]=='I')&&(header[15]=='B')&&
- (header[16]=='M')&&(header[17]==' ')&&(header[18]==' ')&&(header[19]==' '))
- {
- /* table identification test successful */
- }
- else
- {
- /* table identification test failed - set error for return, not quit */
- error=4;
- }
-
-
-
- /* tests finished - load table and quit */
- fread(convTab, sizeof(UBYTE), 256, tabfile); /* load table */
- fclose(tabfile);
- return(error);
-
-